package com.tbit.main.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.tbit.main.pojo.AccountUser;
import com.tbit.main.pojo.DetentionMachineBound;
import com.tbit.main.pojo.VO.DetentionMachineBoundVO;

import java.util.List;

/**
 * <p>
 * 扣押设备绑定 服务类
 * </p>
 *
 * @author chen
 * @since 2023-02-08
 */
public interface DetentionMachineBoundService extends IService<DetentionMachineBound> {

    /**
     * 通过车辆编号查询
     *
     * @param userCode
     * @param accountId
     * @return
     */
    List<DetentionMachineBoundVO> getByUserCode(String userCode, Integer accountId);

    List<DetentionMachineBoundVO> getByDetentionId(Integer detentionId);

    List<DetentionMachineBoundVO> getByDetentionIdAndUserCode(Integer detentionId,String userCode);

    /**
     * 批量新增
     *
     * @param userCodes
     * @param addTime
     * @param remark
     */
    String addBatch(String userCodes, Long addTime, String remark, AccountUser accountUser, Integer detentionId,String detentionName,Integer accountId);

    /**
     * 删除
     *
     * @param userCode
     * @param accountUser
     */
    void del(String userCode, AccountUser accountUser);

    void delMul(List<String> userCodeS, AccountUser accountUser);

    List<DetentionMachineBoundVO> selectByDetentionId(List<Integer> detentionId,String userCode,Integer accountId);

    /**
     * 批量修改扣押区
     *
     * @param accountUser 登录用户信息
     */

    void updateBatch(List<String> machineIdS, AccountUser accountUser,String detentionName,String detentionId);

    /**
     * 获得区域下的扣押车辆
     * @param accountId 区域编号
     * @return 扣押车辆列表
     */
    List<DetentionMachineBound> getListByAccount(Integer accountId);

    /**
     * 查询车辆id集合中扣押车辆id
     *
     * @param machineIds 车辆id集合
     * @return
     */
    List<Integer> getExist(List<Integer> machineIds);

    /**
     * 根据车辆id批量删除扣押车辆
     *
     * @param machineIdList 车辆id集合
     */
    void deleteBatchByMachineList(List<Integer> machineIdList);
}
